package com.warren.blog.handler;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

/**
 * @author warren
 * @data: 2022/3/26 11:57 PM
 * @decription:
 */
public class MySellHandler implements InvocationHandler {
    /**
     * 必须实现InvocationHandler接口，完成代理类要做的功能
     * （1。调用目标方法 2。功能增强）
     */
    private Object target = null;

    //动态代理是传入的，target就是目标对象
    public MySellHandler(Object target) {
        this.target = target;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        Object res = method.invoke(target, args); //执行目标方法
        if (res != null) {
            Float price = (Float) res;
            price = price +25;
            res = price;
        }
        System.out.println("淘宝商家，给你返回一个优惠券");
        return res;
    }
}
